package cn.jly.bigdata.spark.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @author lanyangji
 * @date 2019/11/24 10:47
 */
object Spark02_expr11 {

  def main(args: Array[String]): Unit = {

    // local模式

    // 创建 SparkConf 对象
    // 这边也自定义了本地的模式（分配多少个cpu）
    // app id
    val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount")

    // 创建spark上下文对象，SparkContext -> sc
    val sc = new SparkContext(sparkConf)

    val listRDD: RDD[Int] = sc.makeRDD(Array(3, 1, 2, 7, 11), 4)

    // sortBy算子
    // 1. 按照自身大小排序
    val res: Array[Int] = listRDD.sortBy(x => x).collect
    println(s"自身排序 ${res.mkString(",")}")

    // 2. 按照模3的结果降序排序
    val res2: Array[Int] = listRDD.sortBy(_ % 3, ascending = false).collect
    println(s"模3之后降序排序 ${res2.mkString(",")}")
  }
}
